1. Field of the Invention
The present invention relates to database design. More specifically, the present invention pertains to a method and system that enables faster data synchronization between different databases.
2. Related Art
Computer systems and other electronic devices have become integral tools that are used extensively to perform a wide variety of useful operations in modern society. Applications of computer systems can be found in virtually all fields and disciplines, including but not limited to business, industry, scientific research, education and entertainment. For instance, computer systems are used to analyze financial data, to control industrial machinery, to model chemical molecules, to deliver classroom presentations and to generate special effects for movies. Moreover, computer systems along with other electronic devices are finding new applications as a result of advances in hardware technology and rapid development in software technology. The growing affordability of computer systems and electronic devices together with the abundance of useful new applications have fueled strong demand for such systems and devices.
Included within this broad category of computers and electronic devices is the personal digital assistant (commonly referred to as a PDA). Specifically, as the components required to build a computer system have been greatly reduced in size, new categories of computer systems have emerged. One of these new categories of computer systems is the PDA. A PDA is a portable computer system which is small enough to be held conveniently and comfortably in the hand of its user. In particular, a popular size for the typical PDA approximates the size of a palm.
The PDA is usually a battery-powered device that is typically used as an electronic organizer having the capability to store and display a wide range of information which can include numerous addresses and telephone numbers of business and personal acquaintances, financial information, daily appointments, along with various other personal information. As such, the PDA is able to consolidate a wide variety of information and make the information easily accessible by its user. Therefore, PDAs are very useful and have gained wide popularity.
PDAs usually has a built-in database (e.g., as part of the system software) for storing the wide variety of information as described above. Moreover, PDAs typically have the capability to communicate information with another system, such as to a desktop computer system via a cradle. In many cases, the desktop computer system also store the same kind of information as the PDA with which it communicates in its own database. In between instances of such data communications, the information on either the PDA's or the desktop computer system's database may have been changed (e.g., updates, additions, deletions) by the user. It is also possible that information in both databases have been modified. For example, a user may have added a new entry into the address book of the PDA, and that particular addition has not yet been made to the desktop system's database. Under such circumstances, when the PDA and the desktop system engage in a communication session, data synchronization between the two databases needs to be performed so that the correct information is propagated to both databases.
Currently, some PDAs employ two different modes of synchronization, namely: a slow sync mode and a fast sync mode. According to this implementation, a fast sync is applicable only in a limited number of situations, such as during the first synchronization after a database has been modified. In a subsequent synchronization with a different database, such as a database on a different desktop system, a fast sync is not appropriate and a slow sync is required.
As their names indicate, a slow sync requires more time to complete than a fast sync. This is because while a fast sync simply works on data records that are marked as modified, a slow sync performs a record-by-record comparison for the entire database. Indeed, a slow sync takes up an incrementally longer time period to complete as the size of the database (e.g., measured by the number of data records) that needs to be synchronized increases. As such, it can be an inconvenience to users, especially those who frequently need to synchronize their hand-held device with multiple desktop systems, which typically include a home computer and an office computer. As hand-held computer technology advances and its applications multiply, an increasing number of users utilize hand-held computers and PDAs to store information which eventually needs to be stored in a desktop system, or as a conduit to propagate information between different systems or devices. Therefore, it would be advantageous to come up with a technique that can speed up the rate of data synchronization in situations where a slow sync would have been required under the existing approach.
Another shortcoming of the two-mode data synchronization approach, where fast sync is used in some cases and slow sync in others, is that it necessitates extra programming for developers of applications for PDAs. In particular, since different sync modes are needed under different scenarios, developers need to incorporate program code in PDA applications for determining which sync mode to use in a given situation. Such a requirement is undesirable because the extra program code could prolong the development cycle and introduce added complexity to the applications. Thus, it would be beneficial to provide an approach for data synchronization which is efficient in terms of speed and which does not employ multiple modes of synchronization depending on the particular situation.